package cn.wolfcode.car.business.service;

import cn.wolfcode.car.business.domain.BusinessStatement;
import cn.wolfcode.car.business.query.BusinessStatementQuery;
import cn.wolfcode.car.common.base.page.TablePageInfo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 预约服务接口
 */
public interface IBusinessStatementService {

    /**
     * 分页+过滤查询
     */
    TablePageInfo<BusinessStatement> query(BusinessStatementQuery qo);


    /**
     * 查单个
     * @param id
     * @return
     */
    BusinessStatement get(Long id);


    /**
     * 保存
     * @param businessStatement
     */
    void save(BusinessStatement businessStatement);

  
    /**
     * 更新
     * @param businessStatement
     */
    void update(BusinessStatement businessStatement);

    /**
     *  批量删除
     * @param ids
     */
    void deleteBatch(String ids);

    /**
     * 查询全部
     * @return
     */
    List<BusinessStatement> list();

    /**
     * 在结算时，更新结算单信息
     * @param statementId
     * @param totalAmount
     * @param totalQuantity
     * @param discountPrice
     * @param paytime
     * @param payeeId
     */
    void updateStatement(Long statementId, BigDecimal totalAmount, BigDecimal totalQuantity, BigDecimal discountPrice, Date paytime, Long payeeId);

    /**
     * 修改结算单的消费状态
     * @param id
     * @param statusPaid
     */
    void updateStatus(Long id, Integer statusPaid);

    /**
     * 硬删除则还需要删除关联的结算单明细
     * @param id
     */
    void deleteStatement(Long id);
}
